我正在使用this库和这行文字
#asdfasdf #日本語 スペース @漢字 #日本語 あ http://url file:///url「おくむら」最高ー!…
它给了我正确的价值
#asdfasdf #日本語
但在代码中,regex
中有%
'%(\A#(\w|(\p{L}\p{M}?)|-)+\b)|((?<=\s)#(\w|(\p{L}\p{M}?)|-)+\b)|((?<=\[)#.+?(?=\]))%u'
这个百分号是做什么的?
在iOS中,它没有像这样的百分号。
"(\\A#(\\w|(\\p{L}\\p{M}?)|-)+\\b)|((?<=\\s)#(\\w|(\\p{L}\\p{M}?)|-)+\\b)|((?<=\\[)#.+?(?=\\]))"
在php中它给了我错误:preg_match_all(): Unknown modifier '|'
这个百分号是做什么的?
答案 0 :(得分:0)
没有,它是将正则表达式与其他选项分开的分隔符。它们在preg_*
库中是必需的,请参阅http://php.net/manual/en/regexp.reference.delimiters.php。
请注意,如果您在正则表达式中未使用%
,( ... )
将用作分隔符,当您需要在正则表达式中使用它们时会导致错误不要逃避他们。
在您的情况下发生了这种情况:
(\\A#(\\w|(\\p{L}\\p{M}?)|
^ Here the regex engine thinks you are closing the expression