Php preg_match_all alpha+;重音,但不是数字
我想使用PHP的preg_match_all来捕获子字符串,其中包括:Php preg_match_all alpha+;重音,但不是数字,php,regex,preg-match-all,regex-negation,Php,Regex,Preg Match All,Regex Negation,我想使用PHP的preg_match_all来捕获子字符串,其中包括: A-Z,A-Z,所有重音字符 空间 连字符 它不能捕获包含任何其他内容的字符串,包括数字字符 此示例非常接近,但也捕获包含数字字符的字符串: preg_match_all("/([\w -]+)/u", $abigstring, $matches); 这是Unicode属性的作业: preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches); \p{L}匹配任何具
- A-Z,A-Z,所有重音字符李>
- 空间李>
- 连字符
preg_match_all("/([\w -]+)/u", $abigstring, $matches);
这是Unicode属性的作业:
preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches);
\p{L}
匹配任何具有Unicode属性“Letter”的字符。这是Unicode属性的作业:
preg_match_all("/([\p{L} -]+)/u", $abigstring, $matches);
\p{L}
匹配任何具有Unicode属性“Letter”的字符。对于那些想要匹配的字符,下面是对上面代码的一个更正,它不起作用
preg_match("/^([\p{L} -]+)$/u", $string)
缺少定位点(^和$)
编辑:好多了。如果仅允许在中间使用连字符/空格:
/^([\p{L}](?:[\p{L} -]+[\p{L}])?)$/u
对于那些想这样做的人,这里是对上面代码的一个修正,它不起作用
preg_match("/^([\p{L} -]+)$/u", $string)
缺少定位点(^和$)
编辑:好多了。如果仅允许在中间使用连字符/空格:
/^([\p{L}](?:[\p{L} -]+[\p{L}])?)$/u
这也是一种选择:
preg_replace("/[^A-Za-zÀ-ÿ -]+/u", "", "juana 123456 sfdf 423 999 _ -a- dsa & ç%& à à$¨à+", -1);
下面是一个工作示例->这也是一个选项:
preg_replace("/[^A-Za-zÀ-ÿ -]+/u", "", "juana 123456 sfdf 423 999 _ -a- dsa & ç%& à à$¨à+", -1);
下面是一个工作示例->您想只匹配ASCII重音字符还是包含Unicode?@GigaWatt:“所有重音字母”。您想只匹配ASCII重音字符还是包含Unicode?@GigaWatt:“所有重音字母”。Genius。谢谢你。任何其他搜索的人都可以查找Tim称之为Unicode属性的地球魔法:这里有整个regex需要探索!天才谢谢你。任何其他搜索的人都可以查找Tim称之为Unicode属性的地球魔法:这里有整个regex需要探索!您在哪里看到他想要捕获所有字符串?您在哪里看到他想要捕获所有字符串?这也替换了不需要的连字符。@M42您说得对!我忘了连字符。我编辑了我的答案,现在一切都好了。好的,+1表示
\pL
的替代选项。但我认为\pL
更方便。这也取代了不需要的连字符-
。@M42你说得对!我忘了连字符。我编辑了我的答案,现在一切都好了。好的,+1表示\pL
的替代选项。但是我认为\pL
更方便。