精华内容
下载资源
问答
  • python里print是什么意思,多个,是一个,对象,默认值,一个函数python里print是什么意思易采站长站,站长之家为您整理了python里print是什么意思的相关内容。Python是一种解释型、面向对象、动态数据类型的高级程序设计...

    python里print是什么意思,多个,是一个,对象,默认值,一个函数

    python里print是什么意思

    易采站长站,站长之家为您整理了python里print是什么意思的相关内容。

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

    9839d9c44c5f36e93acc1b67fbe777b3.jpg

    python里print是什么意思?

    python里print() 方法用于打印输出,最常见的一个函数。

    print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。

    以下是 print() 方法的语法:print(*objects, sep=' ', end=' ', file=sys.stdout)

    参数

    objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。

    sep -- 用来间隔多个对象,默认值是一个空格。

    end -- 用来设定以什么结尾。默认值是换行符 ,我们可以换成其他字符串。

    file -- 要写入的文件对象。

    返回值

    无。

    相关推荐:《Python教程》以上就是关于对python里print是什么意思的详细介绍。欢迎大家对python里print是什么意思内容提出宝贵意见

    展开全文
  • dock是什么意思

    千次阅读 2019-12-05 10:00:18
    dock是iMac很常见的一个功能,而且非常实用,那么dock到底是什么意思呢? 1.经常使用苹果电脑的小伙伴,和大家讨论时总会听到有人在说dock栏,不过还是有很多小伙伴不知道dock到底是什么意思,接下来小编就给大家...

    Dock从初级到高级全套教程
    dock是iMac中很常见的一个功能,而且非常实用,那么dock到底是什么意思呢?

    1.经常使用苹果电脑的小伙伴,和大家讨论时总会听到有人在说dock栏,不过还是有很多小伙伴不知道dock到底是什么意思,接下来小编就给大家普及一下。
    在这里插入图片描述
    2.dock一般指的就是苹果操作系统中的停靠栏,也就是苹果电脑桌面中最下方,类似于Windows系统下方的任务栏,不过要比Windows任务栏更加有趣味性。
    在这里插入图片描述
    3.dock的主要作用就是启动、切换运行中的应用程序,是一种很实用的功能界面,适用于Mac OS X操作系统。不过如今不同的操作系统中,都有很多不同的dock程序。
    在这里插入图片描述
    4.如今dock已经不仅仅是用在苹果电脑中了,苹果的所有产品都有这个功能了,比如说iPad中最下方,类似于毛玻璃的那一栏,就是dock系统。同理iPhone下方那一栏也是。
    在这里插入图片描述

    展开全文
  • Python爬虫4.4 — selenium高级用法教程

    千次阅读 多人点赞 2019-11-04 09:14:13
    Python爬虫4.4 — selenium高级用法教程综述Headless Chrome设置请求头设置代理IP常用启动项参数options设置Cookie操作selenium设置cookie行为链常用的行为链操作方法(ActionChains类方法)页面等待1. 隐式等待2. ...

    综述

    本系列文档用于对Python爬虫技术的学习进行简单的教程讲解,巩固自己技术知识的同时,万一一不小心又正好对你有用那就更好了。
    Python 版本是3.7.4

    前面一篇文章讲了selenium的基础用法,这一篇我们讲述一些selenium比较高级的用法。

    Headless Chrome

    上面的示例代码在运行中都会弹出一个浏览器窗口,有时候会很不方便,这就需要我们不弹出窗口爬取数据。

    Headless Chrome 是Chrome浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有Chrome支持的特性,在命令行中运行你的脚本。以前在爬虫要使用Phantomjs来实现这些功能,但Phantomjs已经暂停开发,现在可以使用Headless Chrome来代替。

    示例代码如下:

    # 引入所需库
    import time
    
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    # 定制option
    chrome_options = Options()
    # 设置无头
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    browser = webdriver.Chrome(executable_path=path, options=chrome_options)
    # 打开百度
    url = 'http://www.baidu.com/'
    browser.get(url)
    
    time.sleep(3)
    # 保存页面截图
    browser.save_screenshot('baidu.png')
    
    browser.quit()
    

    设置请求头

    from selenium import webdriver
    # 进入浏览器设置
    options = webdriver.ChromeOptions()
    # 设置中文
    options.add_argument('lang=zh_CN.UTF-8')
    # 更换头部
    options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
    browser = webdriver.Chrome(chrome_options=options)
    url = "https://httpbin.org/get?show_env=1"
    browser.get(url)
    browser.quit()
    

    设置代理IP

    有时候频繁爬取一些网页,服务器发现你是爬虫后会疯掉你的ip地址。这时我们可以更改代理ip来解决这个问题。更改代理ip,不同的浏览器有不同的实现方式,这里以Chrome浏览器为例来讲解:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument('--proxy-server-http://123.56.74.13:8080')
    
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    # 实例化Chrome
    driver = webdriver.Chrome(executable_path=path, options=options)
    driver.get('https://httpbin.org/ip')
    

    常用启动项参数options设置

    启动参数 作用
    –user-agent=”“ 设置请求头的User-Agent
    –window-size=长,宽 设置浏览器分辨率
    –headless 无界面运行
    –start-maximized 最大化运行
    –incognito 隐身模式
    –disable-javascript 禁用javascript
    –disable-infobars 禁用浏览器正在被自动化程序控制的提示

    更多参数说明:https://peter.sh/experiments/chromium-command-line-switches/

    Cookie操作

    1. 获取所有的cookie
      for cookie in driver.get_cookies():
          print(cookie)
      
    2. 根据cookie的key获取value:
      cookie = driver.get_cookie('BD_HOME')
      print(cookie)
      
    3. 删除所有cookie:
      driver.delete_all_cookies()
      
    4. 删除某个cookie:
      driver.delete_cookie('BD_HOME')
      

    示例代码如下:

    # 引入所需库
    import time
    
    from selenium import webdriver
    
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    # 实例化Chrome
    # 如果时其他浏览器需要实例化为对应的对象,例如火狐webdriver.firefox()
    driver = webdriver.Chrome(path)
    # 操作输入框
    driver.get('https://www.baidu.com/')
    time.sleep(2)
    
    # 获取所有cookie
    for cookie in driver.get_cookies():
        print(cookie)
    
    # 根据cookie的key获取value
    # cookie = driver.get_cookie('BD_HOME')
    # print(cookie)
    
    # 删除所有cookie
    # driver.delete_all_cookies()
    
    # 删除某个cookie
    # driver.delete_cookie('BD_HOME')
    driver.close()
    

    selenium设置cookie

    使用add_cookie(cookie_dict)方法给当前会话可以添加一个cookie;cookie_dict是一个字典对象,必须要有namevalue两个键,可选的键有:path, domain, secure, expiry。例如:

    driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’})
    driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’, ‘path’ :/})
    driver.add_cookie({‘name’ : ‘foo’, ‘value’ : ‘bar’, ‘path’ :/, ‘secure’:True})
    

    使用示例代码如下:

    from selenium import webdriver
    browser = webdriver.Chrome()
    
    url = "https://www.baidu.com/"
    browser.get(url)
    # 通过js新打开一个窗口
    newwindow='window.open("https://www.baidu.com");'
    # 删除原来的cookie
    browser.delete_all_cookies()
    # 携带cookie打开
    browser.add_cookie({'name':'ABC','value':'DEF'})
    # 通过js新打开一个窗口
    browser.execute_script(newwindow)
    input("查看效果")
    browser.quit()
    

    行为链

    有时候在也页面中的操作可能要有很多很多,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件,那么示例代码如下:

    import time
    
    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    # 实例化Chrome
    # 如果时其他浏览器需要实例化为对应的对象,例如火狐webdriver.firefox()
    driver = webdriver.Chrome(path)
    # 操作输入框
    driver.get('https://www.baidu.com/')
    time.sleep(2)
    # 根据id获取元素
    input_kw = driver.find_element_by_id('kw')
    submit_btn = driver.find_element_by_id('su')
    
    # 实例化Action
    action = ActionChains(driver)
    action.move_to_element(input_kw)
    action.send_keys_to_element(input_kw, 'python')
    action.move_to_element(submit_btn)
    action.click(submit_btn)
    # 执行上述操作
    action.perform()
    
    time.sleep(5)
    
    driver.close()
    

    常用的行为链操作方法(ActionChains类方法)

    • click(on_element=None) : 左键单击传入的元素,如果不传入的话,点击鼠标当前位置。
    • context_click(on_element=None): 右键单击。
    • double_click(on_element=None) : 双击。
    • click_and_hold(on_element=None): 点击但不松开鼠标
    • drag_and_drop(source, target) : 在source元素上点击抓起,移动到target元素上松开放下。
    • drag_and_drop_by_offset(source,xoffset,yoffset):在source元素上点击抓起,移动到相对于source元素偏移xoffset和yoffset的坐标位置放下。
    • send_keys(*keys_to_send): 将键发送到当前聚焦的元素。
    • send_keys_to_element(element, *keys_to_send): 将键发送到指定的元素。
    • reset_actions(): 清除已经存储的动作。
    • 更多方法请参考:http://sekenium-python.readthedocs.io/api.html

    页面等待

    现在的网页越来越多采用了Ajax技术,这样程序便不能确定合适某个元素才完成加载出来。如果实际页面等待事件过长导致某个DOM元素还没出来,但是你的代码直接使用了这个页面元素,那么就会抛出NullPointer的异常。为了解决这个问题,所以Selenium提供了两种等待方式,一种是隐式等待、一种是显示等待。

    1. 隐式等待

    隐式等待指的是,在webdriver中进行find_element_*这一类查找操作时,如果找不到元素,则会默认的轮询等待一段时间。

    调用driver.implicitly_wait(10)。那么在获取不可用的元素之前,会先等待10秒的时间,示例代码如下:

    driver = webdriver.Chrome(path)
    # 设置隐式等待
    driver.implicitly_wait(10)
    # 请求网页
    driver.get('https://www.baidu.com/')
    

    2. 显示等待

    显示等待是表明某个条件成立后才执行获取元素的操作。也可以在等待的时候指定一个最大的时间,如果超过这个时间那么就抛出一个异常。显示等待应该使用selenium.webdriver.support.expected_conditions期望条件和selenium.webdriver.support.ui.WebDriverWait来配合完成。

    示例代码如下:

    # 引入所需库
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import WebDriverWait
    
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    # 实例化Chrome
    # 如果时其他浏览器需要实例化为对应的对象,例如火狐webdriver.firefox()
    driver = webdriver.Chrome(path)
    
    # 请求网页
    driver.get('https://www.baidu.com/')
    
    # 设置显示等待
    try:
        element = WebDriverWait(driver, 10).until(
            # 只能传一个参数,需要放到元组中
            EC.presence_of_element_located((By.ID,'kw'))
        )
        print(element)
    finally:
        driver.close()
    

    在上面例子中,我们在查找一个元素的时候,不再使用find_element_by_*这样的方式来查找元素,而是使用了WebDriverWait

    try代码块中的代码的意思是:在抛出元素不存在异常之前,最多等待10秒。在这10秒中,WebDriverWait会默认每500ms运行一次until之中的内容,而until中的EC.presence_of_element_located则是检查元素是否已经被加载,检查的元素则通过By.ID这样的方式来进行查找。

    也就是说,在10秒内,默认每0.5秒检查一次元素是否存在,存在则将元素赋值给element这个变量。如果超过10秒这个元素仍不存在,则抛出超时异常。

    expected_conditions类中其他方法

    1. title_is:判断title,返回布尔值
      • WebDriverWait(driver,10).until(EC.title_is(u"百度一下,你就知道"))
    2. title_contains:判断title,返回布尔值
      • WebDriverWait(driver,10).until(EC.title_contains(u"百度一下"))
    3. presence_of_element_located:判断元素对象是否被加载到dom树里; 并不代表该元素一定可见, 如果定位到就返回Webelement
      • WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'some')))
    4. visibility_of_element_located:判断元素对象是否被加载到dom里并且可见, 一般在对象可能会被其他元素对象遮挡的情况下使用
      • WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,'some')))
    5. visibility_of:判断元素是否可见,如果可见就返回这个元素.
      • WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(by=By.ID,value='some')))
    6. presence_of_all_elements_located:判断是否至少有1个元素存在dom树中,如果定位(找)到就返回列表.
      WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR,'some')))
    7. visibility_of_any_elements_located:判断是否至少有一个元素在页面中可见,如果定位到就返回列表.
      • WebDriverWait(driver,10).until(EC.visibility_of_any_elements_located((By.CSS_SELECTOR,'some')))
    8. text_to_be_present_in_element:判断指定的元素中是否包含了预期的字符串,返回布尔值.
      • WebDriverWait(driver,10).until(EC.text_to_be_present_in_element((By.XPATH,"some"),u'设置'))
    9. text_to_be_present_in_element_value:判断指定元素的属性值中是否包含了预期的字符串,返回布尔值.
      • WebDriverWait(driver,10).until(EC.text_to_be_present_in_element_value((By.CSS_SELECTOR,'some'),u'百度一下'))
    10. invisibility_of_element_located:判断某个元素在是否存在于dom或不可见,如果可见返回False,不可见返回这个元素.
      • WebDriverWait(driver,10).until(EC.invisibility_of_element_located((By.CSS_SELECTOR,'some')))
    11. element_to_be_clickable:判断某个元素中是否有可见并且是enable(可点击)的.
      • WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"some"))).click()
    12. element_to_be_selected: 判断某个元素是否被选中了,一般用在下拉列表.
      • WebDriverWait(driver,10).until(EC.element_to_be_selected(driver.find_element(By.XPATH,"some")))
    13. 更多方法请参考:http://sekenium-python.readthedocs.io/waits.html

    切换页面

    有时候窗口中有很多子tab,这时候肯定是需要进行切换的,selenuim提供了一个叫做switch_to_window来进行切换,具体切换到那个页面,可以从driver.window_handles中找到。示例代码如下:

    # 引入所需库
    from selenium import webdriver
    
    # 声明定义chromedriver路径
    path = r'E:\Python_Code\s1\chromedriver_win32\chromedriver.exe'
    # 实例化Chrome
    # 如果时其他浏览器需要实例化为对应的对象,例如火狐webdriver.firefox()
    driver = webdriver.Chrome(path)
    # 操作输入框
    driver.get('https://www.baidu.com/')
    
    driver.execute_script('window.open("http://www.douban.com/")')
    print(driver.window_handles)
    driver.switch_to.window(driver.window_handles[1])
    print(driver.current_url)
    
    # 虽然在窗口中切换到了新页面,但是driver中还没有切换.
    # 如果想要在代码中切换到新的页面,并且做一些爬虫,
    # 那么应该使用driver.switch_to.window()来切换到指定窗口
    # 从driver.window_handlers中取出jurisdiction第几个窗口
    # driver.window_handlers是一个列表,里面装的都是窗口句柄.
    # 它会按照打开页面的顺序来存储窗口的句柄.
    

    其他博文链接

    展开全文
  • UltraEdit高级教程

    万次阅读 2010-12-23 01:04:00
    UltraEdit高级教程 UltraEdit 是一套功能强大的文本编辑器,可以编辑文字、Hex、ASCII码,可以取代记事本,内建... 本文面向有一定UltraEdit 使用经验的用户,介绍UltraEdit 高级功能,这些功能

    UltraEdit 是一套功能强大的文本编辑器,可以编辑文字、Hex、ASCII码,可以取代记事本,内建英文单词检查、C++及VB 语法加亮,可同时编辑多个文件,而且即使开启很大的文件速度也不会慢。软件附有 HTML Tag 颜色显示、搜寻替换以及无限制的还原功能。UltraEdit 支持二进制和16进制编辑,所以还可以用来修改EXE 或DLL 文件。

    本文面向有一定UltraEdit 使用经验的用户,介绍UltraEdit 中的高级功能,这些功能往往被大多数使用者忽视,灵活地使用这些功能将极大的提高工作效率,达到事半功倍的效果。要使用本教程所介绍的所有功能,需要UltraEdit 12.00以上版本或UEStudio 06.10以上版本。

    列模式

    列模式是讲到UltraEdit 不得不说的一个强大功能。列模式能让您按列选取和编辑数据,而一般编辑器只能按行选择数据。

     

    进入列模式的方法:

    使用快捷键Alt+C ,或者使用菜单 列->列模式 ,见下图

    进入列模式后,通过按下键盘上的SHIFT键和方向键来选择多列,选中后的效果见下图,光标变成了多列光标。

     

    此时在键盘上敲入字符的时候,被选中的每一列 都会出现相同的字符,比如按下键盘上的”/”两次,效果见下图。这个例子实际上在编程的时候经常用到,当需要注释一段代码的时候,不必一行一行的注释,采用列模式能减少很多重复的工作。

    插入 / 填充列: 

    以下图的书目文件为例,文件中缺少出版社的信息,而这些书的出版社都为”电子工业”,使用插入 /填充列可以方便地完成这个工作。

    首先在列模式下选择要填充的列,选择菜单 列->插入 /填充列 ,然后出现一个对话框,在这里填写要插入 的文字后点”确定”。

     

     

    确定后,刚才选中的每一列 上都出现了”电子工业”四个字。

    在这里也许您会问,为什么不用上面的方法,选中多列后直接在键盘上敲入”电子工业”四个字?其实如果敲入的是英文字母或字符是没有问题,当在列模式下敲入的是汉字的时候会出现乱码,因此可以用插入 /填充列这个功能来解决这个问题。

    讲到这里是否已感觉到UltraEdit 的强大,接着往下看,您会发现UltraEdit 能做很多Excel的工作,甚至Excel完成不了的工作。

    插入 号码: 

    同样以上面的书目文件为列,我们希望给每行前面加一个行号。

    首先进入列模式,选中第一列 ,也就是”书名 = “这几个字前的那一列 ,选择菜单 列->插入 号码 。如下图:

    点击后进入以下插入 号码的选项框,我们要插入 的是行号,因此起始数字为1,增量也是1,为了显示得整齐一些我们把列首补零也勾上。

    按上图的设置设好后,点”确定”,效果见下图,插入 行号的工作就完成了。

    上面说了UltraEdit 能完成很多Excel的工作,下面就看看如何按列求和。

     / 选择统计: 

    在上面书目文件中,有一个价格列标名了每本书的价格,若想知道这些书的总价钱,很简单:

    首先在列模式下选中这些价格,然后点菜单 列-> 列/选择统计

    在出现的对话框中点一下统计,即可看到统计结果,见下图。这个对话框中的”忽略数据中的字符”填的是”,”,这是保证您要统计的数据以千分位分隔的时候也能正常统计,比如这样的数字 “24,501″。

    或许您有一个疑问,上面我们处理的文件,它的格式都很工整,但往往我们拿到的初始数据都是不工整的。遇上下图的数据,我们想统计这些书的总价钱的时候怎么办?(第3个字段表示价格)下面介绍转换到固定列功能来解决这个问题。

    转换到固定列: 

    通过菜单 列->转换到固定列   将弹出以下对话框,根据文件的情况设置分隔字符,本例中我们的分隔符是TAB制表符,输入”^t”,其它设置保持默认值,然后点”扫描”按钮,扫描后的结 果显示在最下面的框中,本例中为”10,27,3,8″,表示第一个字段(序号)要占10列,第二个字段(书名)占27列,以此类推。

     

    通常我们不需要改变扫描后的结果,直接点转换就能得到下图的效果,这样无论是做统计,还是做接下来讲到的排序,都很方便。

    排序 (Sort)

    排序是UltraEdit 提供的非常实用的一个功能,也许您会觉得用Excel更方便,但别忘了Excel只能支持65535行数据,而UltraEdit 处理上百万行的数据也不成问题,功能决不逊色于Excel。

    下面用一个简单的文件为例,讲述如何排序,见下图,这个是一个商品表,最后一列 是价格,我们要以价格来排序文件。

    首先进入菜单 文件->排序->高级排序/选项 ,见下图

     

    弹出如下的排序选项对话框:

    排列顺序 :可以选择是升序还是降序

    删除重复项 :可以将文件中一模一样的行删除,只保留一行。(想想用Excel怎么去除重复项)

    数字排序 :当要排序的列是数字,并且关心它的实际大小时需要勾选这一项,下面的示例将说明这个问题。

    排序列 :一共可以设置4个列,通过起始列和结束列来指定。

    假设我们要把这个文件按价格升序排列,在这个对话框中选择升序,因为我们关心数值的实际大小,所以勾选数字排序,通过标尺我们确定价格这一字段从65列起到71列结束。设置好后点”排序”按钮,效果如下图。(如果您看不到标尺,可能通过菜单 视图->显示标尺 来显示)

     

    如果没有勾选数字排序,将会出现下图所示的结果,可以看出它是按字符的ASCII码在大小来排序的,而不是数值的真正大小。

    正则表达式搜索与替换 

    先来解释一下什么叫正则表达式:相信您一定使用过Windows或Dos下用于文件查找的通配符,也就是*和?。如果您想查找某个目录下的所有的 Word文档的话,您很自然地会搜索”*.doc”。在这里,”*”会被解释成任意的字符串。和通配符类似,正则表达式也是用来进行文本匹配的工具,只不 过比起通配符,它能更精确地描述您的需求。当然,代价就是更复杂,例如搜索doc为扩名的文件,正则表达式为”.*/.doc”。别看它复杂了很多,但正 则表达式几乎能满足您的一切搜索需求。比如您可以编写一个正则表达式,用来查找所有以0开头,后面跟着2-3个数字,然后是一个连字号”-”,最后是7或 8位数字的字符串(像010-12345678或0376-7654321)。

    UltraEdit 中,正则表达式被很好地支持,目前的版本中一共支持三种,UltraEdit 风格正则表达式、Unix风格正则表达式和Perl兼容正则表达式,本文介绍Perl兼容正则表达式,这是一条被广泛使用的正则表达式,绝大多数的编程语言都支持这种表达式。

    要使用Perl兼容正则表达式,需要在UltraEdit 中做一下设置。点击菜单 高级->配置 ,出现下图的对话框,在左侧选中”正则表达式引擎”,右边勾选”Perl兼容正则表达式”。

     

    正则表达式语法: 

    由于本文的重点不在正则表达式语法方面,这里只做简单介绍。

    元字符: 

    元字符 说明
    匹配除换行符以外的任意字符
    /w  匹配字母或数字或下划线或汉字
    /s  匹配任意的空白符()
    /d  匹配数字
    /b  匹配单词的开始或结束
    /W  匹配任意不是字母,数字,下划线,汉字的字符
    /S  匹配任意不是空白符的字符
    /D  匹配任意非数字的字符
    /B  匹配不是单词开头或结束的位置
    匹配行首
    匹配行尾

    字符转义 

    如果您想查找元字符本身的话,需要使用”/”来转意。例如”.”代表除换行以外的任意字符,如果您想搜索”.”这个字符的话,需要这样使用”/.”。

    重复 

    语法 说明
    重复零次或更多次
    重复一次或更多次
    重复零次或一次
    {n}  重复n次
    {n,}  重复n次或更多次
    {n,m}  重复n到m次

    字符集 

    若要匹配aeiou五个字符中的任意一个,可以表示成[aeiou]。再如[0-9]表示0到9之间的任意一个数字,它的含义和元字符中的/d实际上是一样的。

    反意 

    如果要匹配非a则[^a],除aeiou五个字母之外的表示成[^aeiou],

    贪婪与止贪 

    设有字符串dvea deb cadefb oipi,正则表达式a.*b,表达式的意思是匹配由a开始中间包含任意多个字符并以b结尾,这个表达式匹配出来的结果是a deb cadefb ,而不会是a deb ,我们称这种匹配为贪婪匹配,因为它匹配了尽可能多的字符。要防止这种贪婪匹配,使用”?”,把上面的表达式写成a.*?b的话,匹配出来的结果就是a deb 了。

    UltraEdit 中的正则表达式查找 

    我们以一个html为例,希望搜索一个<ul> Html标记的内容。首先要明确要搜索的字符串的特征:以<ul开头ul>结尾,中间包含任意字符(包括换行),于是表达式可以写 成<ul[/S/s]*?ul>。在这里[/S/s]表示空白和非空白(即所有字符),随后的*表示任意多个,?表示非贪婪搜索。

    确定表达式后按下键盘上的Ctrl+F 在弹出的查找对话框中输入表达式,并且勾选”正则表达式”,点”查找下一个”即可看到搜索的效果见下图。

     

    UltraEdit 中的正则表达式替换 

    UltraEdit 中正则表达式不但可以用于查询还能用于替换,这里介绍一种复杂的替换。以下图所示的一个文件为例,文中有很多日期,都是这样的格式dd/mm/yyyy,我们希望把他替换成yyyy-mm-dd的格式。

    既然是替换,那么必需先查到目标串,用/d表示数据,月和日都一位或两位数据组成,正则表达式表示为/d{1,2},年份都四个数字表示为 /d{4},加上中间的分隔符/,整个日期串可以表示为/d{1,2}//d{1,2}//d{4}。我们替换的目标是要把最后的年份放到第一位去,因此 还需要这个搜索能返回各个部分的值,在Perl正则表达式中用()可以返回搜索串中的值,并用$1表示第一个括号中的值,因此我们加上3个括号表达式变成 (/d{1,2})/(/d{1,2})/(/d{4}),那么$1表于日,$2表示月,$3表示年。说到这里要达到我们的目标就很简单了。

    按下键盘上的Ctrl+R 调出替换对话框,查找内容为(/d{1,2})/(/d{1,2})/(/d{4}),替换为$3-$2-$1,记得勾上”正则表达式”。

     

    填好后”全部替换”,替换后的效果见下图。

     

    常用的正则表达 

    行首空格: ^/s+

    行尾空格:/s+$

    IP地址:[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}/.[0-9]{1,3}

    正整数: ^[1-9]/d*$

    负整数: ^-[1-9]/d*$

    远程文件直接编辑 

    对于刚接触Linux的人来说,要编辑Linux上的文件是一件很痛苦的使用,Linux上的VI编辑器可不像UltraEdit 这么好用,在没有UltraEdit前也许您只能把文件下载回来编辑好后再传上来,有了UltraEdit 的话不需要这么麻烦了,他直接打开远程机器上的文件,保存后自动上传到远程服务器。

    使用这个功能很简单,点菜单 文件->FTP/Telnet->从FTP打开 ,如下图。

    如果您已经配置好了FTP帐号,那么点”浏览站点”就可以看到远程机器上的文件,选中要编辑的文件点打开就可以在UltraEdit 中编辑了。见下图。

    如果您是第一次使用这个功能,那么可以点上图中的”帐号”按钮,将会弹出下图所示的帐户管理器,通过简单的设置即可完成帐号的增加。

    注意 :不建议使用该功能编辑系统核心文件,保存的时候如果出现网络故障容易导致文件丢失。

    冻结窗口 

    实现上UltraEdit 中并没有冻结窗口这个概念,之所以这么中是因为UltraEdit 可以实现类似Excel的冻结窗口的功能。在Excel中我们常用这个功能来固定表头,这样上下滚动的时候可以保持表头不动。

    UltraEdit 中可以实际固定左侧列,滚动水平条的时候只有右边动。例如一个书目文件,第一列 是书名,而价格这一列 在最后,中间夹着很多内容,当把价格这一类滚动到视图中间的时候却看不到书名。因此我们想把书名这一列 固定下来,在滚动水平条的时候固定不动,先要设置一个列标记,点菜单 视图->设置列标记 ,见下图。

     

    在出现的设置列标记对话框中,我们勾上第一行,并设置值为41,41是书名的结束列。如下图。

    设好后,点”确定”,可以看到在41列的地方多了一条竖线,这个时候再点菜单 视图->不滚动标记1左侧 ,这样41列前的内容在水平条滚动的时候不会变,可以把后面的内容滚到前面来,见下图。

    语法加亮 

    语法加亮是UltraEdit 的一个突出亮点,它能像各种语言的IDE开发环境一样,对各种语法的关键字着色。UltraEdit 通过一个叫wordfile的文件来定义各种语言的着色规则。通过添加语法规则即可增加UltraEdit 的识别能力。

    默认安装后的UltraEdit 不支持Oracle的SQL语法着色,下面举例如何让UltraEdit 识别Oracle的SQL脚本并对关键字着色。

    首先打开wordfile定义文件,点菜单 高级->配置 ,在左侧找到”语法加亮”,点右边的”打开”按钮即可打开wordfile文件。

    到官方网站下载Oracle的语法定义文件,官方提供了上百种语法的定义文件,可以根据需要下载,路径为http://www.ultraedit.com/downloads/extras.html#wordfiles 。

    把下载回来的文件粘在wordfile的结尾保存一下就行了。如下图

    但这里要注意一下,下回来内容的开头有一个/L后面有个数字,这个数据需要根据自己的情况改变一下。这是一个编号,不能和wordfile已有的编号重复,并且不能大于20。您可以通过以下方法确定这个编号,点一下工具栏上的”查看方式”按钮,

     

    然后弹出下图的菜单,红色框内语言15到语言20都是目前系统没有用到的编号,因此在这里我们可以把这个编号改成15。

     

    保存后,当我们再次打开Oracle的SQL脚本的时候,语法中的关键字已经会自动着色了。

    结束 

    UltraEdit 还有很多功能这里不再一一讲述,希望上面讲到的功能给您的工作带来便利。

    展开全文
  • 批处理高级教程

    千次阅读 2012-06-07 14:04:59
    本教程主要引用伤脑筋版主的系列文章,同时参考引用[英雄]教程等其他批处理教程,本文将这些文章合并在...本教程还在不断补充之,当有比较典型的应用技巧时,本教材会将其收入相关的章节之。本教程适合对dos有一
  • Recovery是什么意思?对于很多刚接触到安卓手机的同学这是一件比较头疼的事情。那么究竟Recovery是什么意思?他又可以帮助我们做一些什么呢?小编今天就给大家做一个比较详细的recovery功能详解以及刷机教程。 ...
  • 我在此做一个简单的说明,或者对迷茫的你来说有些许帮助。如果你是想成为Java架构师,那么你首先要是一个Java高级攻城狮。也就是说,基础必须牢固,对Java的了解全面而且深入。有很多人对现在的工作感到很没意思,...
  • PG PL SE PM都是什么意思 职责划分

    千次阅读 2018-11-09 07:14:24
    PG PL SE PM都是什么意思 职责划分
  • git使用高级教程

    千次阅读 2019-02-24 11:00:56
    把git的的未提交的代码,工作区间和暂存区的代码,保存到Git的栈意思就是把我没写好的代码先放到一边,待会再用,因为你代码没提交,切分支是比较危险的,甚至不能切换分支的 他叫你先提交修改,但是...
  • 孟岩:什么是高级C++?

    千次阅读 2008-09-02 13:37:00
    什么是高级C++?——软件工业化时代的C++价值观孟岩《程序员》杂志社开门见山主要论点: 1. C++本质上是一种重“创新”而轻“生产”的语言,到目前为止仍然是主流语言最适合技术创新的一个; 2. 1995年之前,...
  • 安卓手机root是什么意思

    千次阅读 2016-03-17 21:35:34
    目前,平板电脑、智能...但在实际使用却发现,这些软件有些提示需要root权限才能运行,比如360手机卫士提示需要root权限才能清除顽固手机木马;软件安装多了,很多软件都会设置成为开机自动启动,造成开机速度非
  • React-高级教程完整版

    千次阅读 2017-04-05 23:01:43
    React 高级教程完整版这标题可能有点不太贴切或符合内容,从官方上来区分这部分内容确实属于高级部分,只是由于个人原因,在后面的一些章节并没有记录在列。也为了承接上一篇,因此勉强将标题定位:“React 高级教程...
  • 前面介绍了和汇编相关的指令字节码部分,这节继续翻译汇编教程英文原著第一章的后续部分。High-Level Languages(高级编程语言) 如果直接使用纯粹的处理器指令集进行编程确实很困难(尽管看起来好像很cool),即便是...
  • PostMan:高级使用教程

    千次阅读 多人点赞 2019-07-05 20:30:33
    如图:主要讲解postman的test测试以及环境的配置 如图:主要讲解postman的test测试以及环境的配置 用例执行历史记录 ...为什么要配置环境变量:当测试用例的ip或者端口号更改时,我们需要将...
  • Vbs与批处理高级教程

    万次阅读 2010-12-30 18:29:00
    <br />Vbs与批处理高级教程   Vbs脚本编程简明教程之一  —为什么要使用Vbs? 在Windows,学习计算机操作也许很简单,但是很多计算机工作是重复性劳动,例如你每周也许需要对一些...
  • [Android Studio 权威教程]断点调试和高级调试

    万次阅读 多人点赞 2015-06-15 11:26:28
    这里的意思就是说,会很快执行到下一个断点的位置,而且可以静如任何调用的方法 二、高级调试 1. 跨断点调试 如果我们设置了多个断点,现在我们需要直接跳转到下一个断点,那么直接点击下图就...
  • WPF高级教程(一)概述

    千次阅读 2020-02-19 22:40:37
    WPF是什么 WPF是基于Windows的用户界面框架,划重点:基于Windows,用户界面框架。 需要注意的是,WPF仅仅是有关于用户界面渲染的技术,而后台的开发,与系统的交互等都需要.NET Framework 的支持。 为什么写这一...
  • 什么是Numpy、Numpy教程

    2018-11-10 01:27:14
    什么是Numpy、Numpy教程 一、什么是Numpy? NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率...
  • Ghost高级教程——克隆备份

    千次阅读 2017-12-19 11:19:11
    我们能用做什么  ★可以创建硬盘镜像备份文件  ★可以将备份恢复到原硬盘上  ★磁盘备份可以在各种不同的存储系统间进行  ★支持FAT16/32、NTFS、OS/2等多种分区的硬盘备份  ★支持Win9X、NT、UNIX、Novell等...
  • 爬虫高级篇,你如何抓取接口

    千次阅读 多人点赞 2020-10-29 01:47:17
    爬虫高级篇,你如何抓取接口 今天要爬取目标网站是极简壁纸,先放张图,这就是我们要爬取的首页, 由于网站禁止了右击—>检查,F12, 选择Elemets,随便定位一张图片试试, 可以看到,这是缩略图,而我们要...
  • J2ME中文教程 3 MIDP高级UI 的使用

    千次阅读 2006-03-04 22:06:00
    第3章 MIDP高级UI 的使用3.1 概述3.2 列表List3.2.1 Exclusive(单选式)3.2.2 Implicit (隐含式)3.2.3 Multiple(多选式)3.3 TextBox3.4 Alert3.5 Form概述3.6 StringItem及Image
  • 先简单介绍一下这四种分别是什么意思: Code - 这是你输入代码的地方 Markdown - 这是你输入文本的地方。你可以在运行代码后添加结论,添加注释等。 Raw NBConvert - 这是一个命令行工具,可将你的笔记本...
  • Gatling官网翻译之高级教程

    千次阅读 2016-01-14 10:36:37
    写在前面的话: 最近在学习gatling,在...1. tryMax的意思是,如果执行多少次失败才算失败,比如例子就是两次; 2. exitHereIfFailed的意思就是认定了以失败作为场景的check结果; 场景条件相关点击这里: ...
  • CMD命令行高级教程精选合编

    千次阅读 2016-08-30 10:17:27
    第七章 DOS编程高级技巧  一、界面设计  二、if…else…条件语句  三、循环语句  四、子程序  五、用ftp命令实现自动下载  六、用7-ZIP实现命令行压缩和解压功能  七、调用VBScript程序...
  • 数据的高级操作蠕虫复制蠕虫复制:从已有的数据表获取数据,然后将数据进行新增操作,数据成倍(以指数形式)的增加。根据已有表创建新表,即复制表结构,其基本语法为: create table + 表名 + like + [数据库名....
  • 数据的高级操作查询数据(上) 基本语法: select + 字段列表/* + from + 表名 + [where 条件]; 完整语法: select + [select 选项] + 字段列表[字段别名]/* + from + 数据源 + [where 条件] + [1] + [2] + [3]; [1...
  • 数据的高级操作更新数据 基本语法: update + 表名 + set + 字段 = 值 + [where 条件]; 高级语法: update + 表名 + set + 字段 = 值 + [where 条件] + [limit 更新数量]; 执行如下 SQL 语句,进行测试:-- 将表 my_...
  • numpy高级教程之np.where和np.piecewise

    千次阅读 2018-09-25 16:07:35
    注意,这一没有删选条件啊,因为where的参数就是b而不是什么,b>1,b>2之类的布尔表达式,那是怎么回事呢,实际上,它是经过进一步处理了的,将0元素看成是false,将大于0的全部当成是true,与下面的运行结果是完全...
  • H5页面就是利用html5制作出来的页面,尤其在微信发展迅速,借由微信这个移动社交平台,正在走进更多人的视野,比如从引爆朋友圈的H5小游戏《围住神经猫》,到颠覆传统广告的大众点评H5专题页《我们之间只有一
  • R极简教程-11:高级绘图函数

    千次阅读 2017-06-26 19:59:02
    上一篇里我大概写了R语言的简单作图元素,这里我们开始使用一些稍微高级的绘图函数,这些函数主要用来做各种统计图,比如箱线图,条形图,散点图等等……这些图再几百年前就开始使用,至今依然是学术界最为流行的图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,567
精华内容 16,226
关键字:

中教高级是什么意思