我正在创建一种方法来将页面标题修改为一个好的字符串,以便使用URL重写。 示例:“最新消息”,将是“最新消息”
问题是页面标题不受我的控制,有些类似于以下内容: 足球&橄榄球新闻!理想情况下,这将成为橄榄球橄榄球新闻。
我已经做了一些工作来实现足球 - & -rugby-news!
是否有可能的正则表达式来识别那里不需要的字符和额外的' - '?
基本上,我需要用单个' - '分隔的数字和字母。
我只掌握正则表达式的基本知识,我能想到的最好的是:
[^a-z0-9-]
我不确定我在这里是否足够清楚。
答案 0 :(得分:1)
尝试用这样的东西'替换所有'。
[^a-zA-Z0-9\\-]+
用短划线替换比赛。
替代正则表达式:
[^a-zA-Z0-9]+
如果在其他不需要的字符附近找到破折号本身,则会避免多次破折号。
答案 1 :(得分:1)
此Perl脚本也可以满足您的需求。当然,除了硬编码之外,您还必须通过其他方式为其提供字符串;我只是把它放在那里作为例子。
#!/usr/bin/perl
use strict;
use warnings;
my $string = "Football & Rugby News!";
$string = lc($string); # lowercase
my $allowed = qr/a-z0-9-\s/; # all permitted characters
$string =~ s/[^$allowed]//g; # remove all characters that are NOT in $allowed
$string =~ s/\s+/-/g; # replace all kinds of whitespace with '-'
print "$string\n";
打印
football-rugby-news