<?php
$strings="
_____________________
--> Welcome to RegExr v2.1 by gskinner.com, proudly hosted by Media Temple!
Edit the Expression & Text to see matches. Roll over matches or the expression for details. Undo mistakes with ctrl-z. Save Favorites & Share expressions with friends or the Community. Explore your results with Tools. A full Reference & Help is available in the Library, or watch the video Tutorial.
Sample text for testing: ª²³µ - Académie Française ______________---__
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789 _+-.,!@#$%^&*();\\/|<>\"\'
12345 -98.7 3.141 .6180 9,000 +42
555.123.4567 +1-(800)-555-2468
foo@demo.net bar.ba@test.co.uk
www.demo.com http://foo.co.uk/
http://regexr.com/foo.html?q=bar
https://mediatemple.net
";
/* No line break */
$string = preg_replace("/[\W]+/u", '', $strings);
echo "Option 1:".$string;
/* Keep line break */
$string = preg_replace("/[^\n\w]+/u", '', $strings);
echo "\n\nOption 2:". $string;
?>
7条答案
按热度按时间ou6hu8tu1#
听起来你几乎已经知道你想做什么了,你基本上把它定义为一个正则表达式。
bxjv4tth2#
对于Unicode字符,它是:
vxbzzdmp3#
Regular expression就是您的答案。
i
代表不区分大小写。^
表示,开头不是。\d
匹配任何数字。a-z
匹配a
和z
之间的所有字符。由于i
参数,您不必指定a-z
和A-Z
。\d
之后有一个空格,所以在这个正则表达式中允许有空格。col17t5w4#
如果您需要支持其他语言,而不是典型的A-Z,则可以使用以下代码:
[^\p{L}\p{N} ]
定义一个 negated(它将匹配未定义的字符)字符类:\p{L}
:* 任何 * 语言的字母。\p{N}
:any 脚本中的数字字符。+
* greavely * 匹配字符类1到 unlimited 次。这将保留其他语言和文字中的字母和数字以及A-Z:
**注:**这是一个非常古老但仍然相关的问题。我的回答纯粹是为了提供补充资料,可能对未来的访问者有用。
tsm1rwdh5#
下面是一个非常简单正则表达式:
并在需要时使用(使用正斜杠分隔符
/
)。在这里用这个解释正则表达式功能的工具测试一下:
http://www.regexr.com/
brqmpdu16#
它选择所有非A-Z、a-z、0-9,然后删除。
请参见此处的示例:https://regexr.com/3h1rj
php 8.1.12的输出
hfwmuf9z7#
您可以在这里测试:http://regexr.com/