【发布时间】:2022-01-03 11:31:10
【问题描述】:
我正在尝试对遵循这些模式的字符串进行匹配和替换:
text_text_text
text_text
text_123
基本上是字母数字和一个或多个下划线。
替换基本上只是接受匹配并为其添加粗体标记。
到目前为止我有这个,但它基本上与我内容中的大部分文本匹配:
$description = preg_replace(
"~[[:alnum:]+_]+~",
"<b>\\0<\b>",
$description);
感谢任何帮助。
【问题讨论】:
-
为什么字符集中有
+?我以为你只是想匹配字母、数字和下划线。 -
$0是首选而不是\\0。 -
我现在编辑为
~[[:alnum:]\_]+~并替换为<b>$0</b>。但是我仍然在做一些非常愚蠢和错误的事情,因为它也一直匹配所有其余的文本。如何使下划线成为强制性并在任何空格处停止? -
我希望您内容中的大部分文字都是字母和数字。为什么不匹配呢?
-
是否应该仅在至少有一个下划线时才匹配?