Php 如何使用regex“而不是~”?
我在PHP中使用正则表达式 从字符串中,我要替换所有非此格式的字符串:Php 如何使用regex“而不是~”?,php,regex,Php,Regex,我在PHP中使用正则表达式 从字符串中,我要替换所有非此格式的字符串: ([0-9]*\-*[0-9]+) 比如说, 1-2,3-4,1 你很好,但是 美国广播公司,123,12-3 不接受 有什么表达方式吗 "except ([0-9]*\-*[0-9]+)" 在正则表达式中?在我看来,您可以使用负面前瞻,这将限制更一般的字符类,例如,在您的情况下,它可以是除或以外的任何字符: 看 请注意,\与后跟0个或更多字符的文字匹配,这些字符不是由于[^]*,而是由于[^]*,但不符合您的模式\d
([0-9]*\-*[0-9]+)
比如说,
1-2,3-4,1
你很好,但是
美国广播公司,123,12-3
不接受
有什么表达方式吗
"except ([0-9]*\-*[0-9]+)"
在正则表达式中?在我看来,您可以使用负面前瞻,这将限制更一般的字符类,例如,在您的情况下,它可以是除或以外的任何字符: 看 请注意,\与后跟0个或更多字符的文字匹配,这些字符不是由于[^]*,而是由于[^]*,但不符合您的模式\d*-?\d+ 如果要在修剪空格和逗号时删除这些元素,可以使用
,?\s*\((?!\d*-?\d+\))[^()]*\)
参见[0-9]*\-*[0-9]+是正则表达式吗?!要么匹配要么不匹配。^除了\[0-9\]\*\-\*\[0-9\]\+\$:-pto匹配所有与[0-9]*\-*[0-9]+不匹配的格式。就像在问题中,匹配所有不属于这种格式的格式:1-2,2->毕竟匹配所有不属于[0-9]*\-*[0-9]+格式的格式。您是要匹配整行中的所有三种格式吗?或者他们是连续三个独立的例子?因为123的匹配方式相同,1也是一个可以接受的答案。如果它对你有用的话,如果答案对你有用的话,也请考虑一下投票。
,?\s*\((?!\d*-?\d+\))[^()]*\)