我无法从字符串中仅提取“a-zA-Z0-9- _”。
示例;
如果我输入“A cat นกห 004-1 กกกกก” 它只显示“a-cat-004-1”
或
如果我输入“aa 4-5 aaa” --> 'aa-5-4-aaa'
有什么想法吗?
最佳答案
执行以下操作:
- 将
[^a-zA-Z0-9_ -]
替换为任何内容。这会消除您不需要的任何字符。 - trim 字符串开头和结尾的空格。
- 将
' +'
(一个或多个空格)替换为-
- 将字符串转换为小写。
至少我可以猜到你想要什么。你的例子与你的问题描述不符。关于空格和小写字母的部分是从您的示例中推断出来的,因为您没有提到它。
在 PowerShell 中,这可能如下所示:
PS> (('A cat นกห 004-1 กกกกก' -replace '[^a-zA-Z0-9_ -]').Trim() -replace ' +','-').ToLower()
a-cat-004-1
PS> (('aa مقتطف 4-5 aaa' -replace '[^a-zA-Z0-9_ -]').Trim() -replace ' +','-').ToLower()
aa-4-5-aaa
针对 PHP 或 Javascript 进行相应调整。两者都支持正则表达式和字符串函数。
关于php - 如何使用 javascript 或 PHP 仅从字符串中获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3470010/