如何在python中使用str.find()函数

时间:2017-08-20 12:09:27

标签: python

我想要实现的目标是,我希望仅允许用户输入public class ScheduleTimeCellEditor extends DefaultCellEditor { private final JSpinner spinner; private final SpinnerDateModel spinnerDateModel; public ScheduleTimeCellEditor(JTable jtblSchedule) { super(new JTextField()); this.jtblSchedule = jtblSchedule; spinnerDateModel = new SpinnerDateModel(); spinner.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { jtblSchedule.setDefaultRenderer(new ScheduleTableCellRenderer); } }); } } google.com中的任何网站。为此,我在python控制台中的示例代码如下:

Testing find() function in console

返回的结果goo.gl是正确的,因为false符合包含url的条件。我继续测试了更多选项网址,例如goo.glhttps://google.gl/LoZXyE函数返回find(),因为它不符合包含字词' google.com'或者' goo.gl'。

我的问题是,如果我为变量url分配了如下所示的值,我希望它从上面的true函数返回true,因为它不包含单词' goo.gl&#39 ;完全,但它返回find()

Test Find function in console

发生了什么事?如何像上面的结果一样验证网址,如预期的那样?

感谢。

2 个答案:

答案 0 :(得分:3)

那一行

url = 'https://goo.glAB/LoZXyE'

确实包含' goo.gl',但你不想要它,因为它会立即跟在网址中的AB,后者会更改顶级域名。

另一种方法是不搜索goo.gl,而是搜索//goo.gl/。这适用于您提供的示例,并防止更改顶级域的后续和前一个字符。这就行了

url.find('//google.com/') == -1 and url.find('//goo.gl/') == -1

请记住,上面的行仅适用于交互式控制台。要在程序中使用它,请将其放在if行或表达式中,例如

if url.find('//google.com/') == -1 and url.find('//goo.gl/') == -1:

expr = url.find('//google.com/') == -1 and url.find('//goo.gl/') == -1

或(更像是您的互动热线)

print(url.find('//google.com/') == -1 and url.find('//goo.gl/') == -1)

答案 1 :(得分:0)

尝试

url.find('google.com/') == -1 and url.find('goo.gl/') == -1:
  ...