如何在perl中使用正则表达式检测符号?

ali*_*cee 1 perl

请问如何使用正则表达式检查单词是否以符号字符开头或结尾,以及如何处理符号中的文本.

例:

  • (text) or te-xt, or tex't. or text?

    改为

  • (<t>text</t>) or <t>te-xt</t>, or <t>tex't</t>. or <t>text</t>?

帮帮我?

谢谢

DVK*_*DVK 5

我假设"单词"表示您示例中的字母数字字符?如果你有一个允许的字符列表构成一个有效的单词,那么这就足够了:

my $string = "x1 .text1; 'text2 \"text3;\"";
$string =~ s/([a-zA-Z0-9]+)/<t>$1<\/t>/g; 
              # Add more to character class [a-zA-Z0-9] if needed
print "$string\n";
# OUTPUT: <t>x1</t> .<t>text1</t>; '<t>text2</t> "<t>text3</t>;"
Run Code Online (Sandbox Code Playgroud)

UPDATE

基于你的例子你似乎想要删除短划线和撇号,如果你想全局删除它们(例如它们是否在单词内),在第一个正则表达式之前,你做

$string =~ s/['-]//g; 
Run Code Online (Sandbox Code Playgroud)