获取字符串的最后4个字符,只要它们是特殊字符即可

时间:2017-01-12 15:59:40

标签: python python-2.7

我的网址如下所示:

http://example.com/php?id=2/*
http://example.com/php?id=2'
http://example.com/php?id=2*/"

我需要做的是抓住字符串的最后一个字符,我试过了:

for urls in html_page:
    syntax = list(url)[-1]
# <= *
# <= '
# etc...

然而,这只会抓取字符串的最后一个字符,有没有一种方法可以抓住最后一个字符,只要它们是特殊字符?

2 个答案:

答案 0 :(得分:4)

使用正则表达式。假设“特殊字符”表示“import java.io.IOException; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Reducer; public class alicanteReducerC extends Reducer<Text, IntWritable, Text, IntWritable> { IntWritable maximum = new IntWritable(); public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int max = 0; for (IntWritable val : values) { if (val.get() > max) { max = val.get(); } } for (IntWritable val : values) { if (val.get() == max) { context.write(key, val); } } } } 以外的任何内容”:

A-Za-z0-9

>>> import re >>> re.search(r"\W+$", "http://example.com/php?id=2*/'").group() "*/'" 匹配一个或多个“非单词”字符,\W+将搜索锚定到字符串的末尾。

答案 1 :(得分:2)

使用正则表达式?

import re
addr = "http://example.com/php?id=2*/"
chars = re.search(addr, "[\*\./_]{0,4}$").group()

您要匹配的字符是[]括号之间的字符。您可能希望根据预期遇到的内容添加或删除字符。 例如,您(可能)不希望匹配示例网址中的'='字符,而另一个答案将与之匹配。 {0,4}表示匹配0-4个字符(默认为贪婪)